package com.unju.hibernate.patronDAO.imp;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.criterion.Restrictions;

import com.unju.hibernate.HibernateBase;
import com.unju.hibernate.entidades.Faseactividad;
import com.unju.hibernate.patronDAO.PatronDAO;

public class FaseactividadDAOImpl extends HibernateBase implements PatronDAO<Faseactividad> {

	@Override
	public List<Faseactividad> getAll() {
		getSession().beginTransaction();
		List<Faseactividad> lista = getSession().createCriteria(
				Faseactividad.class).list();
		getSession().getTransaction().commit();
		getSession().close();
		return lista;
	}

	@Override
	public Faseactividad get(Integer idDato) {
		getSession().beginTransaction();
		Faseactividad faseRecurso = (Faseactividad) getSession().get(
				Faseactividad.class, idDato);
		getSession().getTransaction().commit();
		getSession().close();
		return faseRecurso;
	}

	@Override
	public void insert(Faseactividad unDato) {
		getSession().beginTransaction();
		getSession().save(unDato);
		getSession().getTransaction().commit();
		getSession().close();
	}

	@Override
	public void update(Faseactividad unDato) {
		getSession().beginTransaction();
		getSession().update(unDato);
		getSession().getTransaction().commit();
		getSession().close();
	}

	@Override
	public void delete(Faseactividad unDato) {
		getSession().beginTransaction();
		getSession().delete(unDato);
		getSession().getTransaction().commit();
		getSession().close();
	}
	
	public Faseactividad getFaseActividadByName(String nombre) {
		Faseactividad faseActividad = null;
		getSession().beginTransaction();
		Criteria criteria = getSession().createCriteria(Faseactividad.class);
		criteria.add(Restrictions.eq("nombre", nombre));
		if (criteria.list().size() > 0)
			faseActividad = (Faseactividad) criteria.list().get(0);
		getSession().close();
		return faseActividad;
	}
}
